// 变量作用域与结构赋值

// function name() {
//     var x=1;
//     x=x+1;
// }
// console.log(name(x));


// function foo() {
//     var x = 1;
//     function bar() {
//         var y = x + 1; // bar可以访问foo的变量x!
//     }
//     var z = y + 1; // ReferenceError! foo不可以访问bar的变量y!
// }

// 'use strict';
// function foo() {
//     var x = 1;
//     function bar() {
//         var x = 'A';
//         console.log('x in bar() = ' + x); // 'A'
//     }
//     console.log('x in foo() = ' + x); // 1
//     console.log(bar());
// }

// console.log(foo());

// function foo() {
//     var y; // 提升变量y的申明，此时y为undefined
//     var x = 'Hello, ' + y;
//     console.log(x);
//     y = 'Bob';
// }

// console.log(foo());

// function foo1() {
//     var x = 'Hello, ' + y;
//     console.log(x);
//     var y = 'Bob';
// }

// console.log(foo1());

// // 局部作用域
// function foo() {
//     var sum = 0;
//     for (let i=0; i<100; i++) {
//         sum += i;
//     }
// }
// console.log(foo());

// const PI=3.14;
// console.log(PI);

// var array = ['hello', 'JavaScript', 'ES6'];
// var x = array[0];
// var y = array[1];
// var z = array[2];
// console.log(x);

// var [x, y, z] = ['hello', 'JavaScript', 'ES6'];
// console.log(x,y,z);

// var [x, [y, z]] = ['hello', ['JavaScript', 'ES6']];
// console.log(z);

// var [,,z]=['1','2','3']
// console.log(z);

// var pass={
//     name:'小明',
//     age:20,
//     gender:'male',
//     address: {
//         city: 'Beijing',
//         street: 'No.1 Road',
//         zipcode: '100001'
//     }
// }
// // var {name,age,gender}=pass;
// // console.log(pass);

// // var {name,age,gender,address:{city,zipcode}}=pass;
// // console.log(pass);

// var {name,age:id}=pass;
// console.log(pass);

// console.log({hostname:domain,pathname:path}=location);

function name({year,month,day}) {
    return new Date(year+month+day)   
}
console.log(name({year:2017,month:1,day:1}));